Allow 'help-quick' to use a non-global keymap
authorPhilip Kaludercic <philipk@posteo.net>
Thu, 11 Apr 2024 07:00:50 +0000 (09:00 +0200)
committerPhilip Kaludercic <philipk@posteo.net>
Sat, 13 Apr 2024 08:21:43 +0000 (10:21 +0200)
* lisp/help.el (help-quick-sections): Mention
'help-quick-use-map' in docstring.
(help-quick-use-map): Add new variable, defaulting to the
global-map.
(help-quick): Use new variable.

lisp/help.el

index e23dd8ce0aedcd5a2d895e85f66e99681e4fad92..d4e39f04e53a16402c9e61c417174360c3f8c154 100644 (file)
@@ -171,9 +171,15 @@ Value should be a list of elements, each element should of the form
 
   (GROUP-NAME (COMMAND . DESCRIPTION) (COMMAND . DESCRIPTION)...)
 
-where GROUP-NAME is the name of the group of the commands,
-COMMAND is the symbol of a command and DESCRIPTION is its short
-description, 10 to 15 characters at most.")
+where GROUP-NAME is the name of the group of the commands, COMMAND is
+the symbol of a command and DESCRIPTION is its short description, 10 to
+15 characters at most.  The bindings for COMMAND are looked up from the
+keymap specified in `help-quick-use-map'.")
+
+(defvar help-quick-use-map global-map
+  "Keymap that `help-quick' should use to lookup bindings.
+Avoid changing the global value of this variable.  Instead bind a
+different map dynamically.")
 
 (declare-function prop-match-value "text-property-search" (match))
 
@@ -193,7 +199,7 @@ the documentation of the command bound to that key sequence."
         (let ((max-key-len 0) (max-cmd-len 0) keys)
           (dolist (ent (reverse (cdr section)))
             (catch 'skip
-              (let* ((bind (where-is-internal (car ent) nil t))
+              (let* ((bind (where-is-internal (car ent) help-quick-use-map t))
                      (key (if bind
                               (propertize
                                (key-description bind)